package com.powerbank.user.service;

import com.powerbank.user.vo.DeviceStatusVO;
import com.powerbank.user.vo.SlotStatusVO;

/**
 * 设备通信服务接口
 * 用于与物联网设备进行通信
 */
public interface DeviceCommunicationService {

    /**
     * 发送开锁指令到设备
     *
     * @param deviceCode 设备编码
     * @param slotNo     插槽号
     * @return 是否成功
     */
    boolean sendUnlockCommand(String deviceCode, Integer slotNo);

    /**
     * 发送锁定指令到设备
     *
     * @param deviceCode 设备编码
     * @param slotNo     插槽号
     * @return 是否成功
     */
    boolean sendLockCommand(String deviceCode, Integer slotNo);

    /**
     * 查询设备状态
     *
     * @param deviceCode 设备编码
     * @return 设备状态信息
     */
    DeviceStatusVO queryDeviceStatus(String deviceCode);

    /**
     * 查询插槽状态
     *
     * @param deviceCode 设备编码
     * @param slotNo     插槽号
     * @return 插槽状态
     */
    SlotStatusVO querySlotStatus(String deviceCode, Integer slotNo);

    /**
     * 获取设备电量信息
     *
     * @param deviceCode 设备编码
     * @return 电量信息
     */
    Integer getDeviceBatteryLevel(String deviceCode);
}